/*
 * @Author: wfl
 * @LastEditors: wfl
 * @description: 
 * @updateInfo: 本次更新内容：
 * @Date: 2021-04-28 15:53:52
 * @LastEditTime: 2021-04-29 11:18:28
 */
import axios from 'axios'
const useInterceptor = () => {
    // 添加请求拦截器
    axios.interceptors.request.use((config) => {
        // 在发送请求之前做些什么
        return config;
    }, (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    });

    // 添加响应拦截器
    axios.interceptors.response.use((response) => {
        // 对响应数据做点什么
        return response;
    }, (error) => {
        // 对响应错误做点什么
        return Promise.reject(error);
    });
}

const useErrorAction = (err: { response: Response }, netType: string) => {
    let obj = {
        code: 0,
        msg: `请求错误，请稍后再试`
    }
    if (!err.response) {
        obj = {
            code: 0,
            msg: `请求超时，请稍后再试`
        }
    }
    if (err.response.status === 401) {
        obj = {
            code: 0,
            msg: `${status}  登录失效`
        }
    } else {
        const { status } = err.response
        if (`${status}`.startsWith('5')) {
            obj = {
                code: 0,
                msg: `${status}  服务器错误`
            }
        } else if (status === 400) {
            obj = {
                code: 0,
                msg: `${status}  请求参数错误`
            }
        } else if (status === 405) {
            let str = netType === 'POST' ? 'GET' : 'POST'
            obj = {
                code: 0,
                msg: `${status} 请求类型错误  应该为${str}`
            }
        } else if (status === 404) {
            obj = {
                code: 0,
                msg: `${status} 接口不存在`
            }
        } else if (`${status}`.startsWith('4')) {
            obj = {
                code: 0,
                msg: `${status} 参数错误`
            }
        }
    }
    return obj
}

export {
    useInterceptor,
    useErrorAction
}